Math 479/Math 560: Optimization
Prof. Andrew Ross
Fall Semester 2024
Basic Information
Note: this syllabus is temporary, and may change up to the first day of class.
This version posted on: 2024-08-23
The official course title is "Introduction to Optimization Theory".
However, we will try to split our time evenly between applications/modeling,
theory, and methods.
Mathematical optimization is the science (and sometimes art) of finding the best
(lowest cost, most lives saved, least risk, or best-fitting) solution to a given minimization or maximization problem.
Often, we also try to prove that it is the best, or that it is within some small percentage
of the best solution. Some common examples are:
- Scheduling staff or rooms (like operating rooms) to meet customer demand levels,
- Organizing part/product flow in a supply chain (for industry, or for disaster relief),
- Manipulating statistical parameters to maximize a likelihood function,
- Fitting a curve to data in a traditional statistics model,
- Manipulating the parameters of a "neural net"/deep-learning model to get good predictions or classifications.
Since you have had the prerequisite courses, you are familiar with
finding the minimum or maximum of a function using derivatives (like in first-semester
calculus), and finding the minimum or maximum of a function of two or three
variables (like in third-semester calculus). In this course, we will be
working with thousands of variables--real applications can use millions
of variables. Of course, we don't solve problems like that by hand.
In our course, we will learn the methods people have developed for
computers to solve such large problems.
Official Course Catalog Entry
An introduction to various aspects of optimization theory, including linear and nonlinear programming, primal dual methods, calculus of variations, optimal control theory, sensitivity analysis and numerical methods.
Prerequisites
Completion of courses in elementary linear algebra/matrix algebra and multivariable calculus is assumed.
Some experience using Excel, and Python, Mathematica, Maple, or Matlab/Octave/SciLab will also
be very helpful, but it is not strictly a prerequisite.
Follow-up courses: Math 436 Numerical Analysis, Math 419W/519 Stochastic Math Models,
various statistics classes.
Related courses:
Class Meetings
Other class info:
Math 479 CRN 14657;
Math 560 CRN 12766
3 credit hours.
Instructor information
Professor Andrew Ross
Pray-Harrold 515L
andrew.ross@emich.edu
http://emunix.emich.edu/~aross15/
(734) 487-1658, but I strongly prefer e-mail instead of phone contact. During the coronavirus shutdown, my office phone number will just always go to voicemail.
Math department main office: Pray-Harrold 515, (734) 487-1444
Office Hours and other help
In Fall 2024:
Mon/Wed/Fri: online office hours as shown on my Google Calendar Appointment Calendar
Tue/Thu:
1:15-1:45 office hour in Pray-Harrold 515L
2:00-3:15 Math 319 in Pray-Harrold 321
3:15-4:00 office hour (possibly in Pray-Harrold 321)
4:00-5:15 Math 479/Math 560 in Pray-Harrold 321
5:15-5:45 office hour in Pray-Harrold 515L
You can also make an appointment to meet me on Zoom using my Google Calendar Appointment Page
I am also happy to make appointments if you cannot come to the general
office hours. Please send me e-mail to arrange an appointment.
It can even be in the evening or on a weekend.
Many assignments in this course will be in the form of papers, which you and I both
want to be well written. Please consult with
The Writing Center
for help in tuning up your writing.
Required materials
We will be using pieces from the following textbooks, which are ELECTRONICALLY FREELY AVAILABLE to EMU students through our campus library:
- Linear and nonlinear programming, 3rd edition, by David G. Luenberger, Yinyu Ye
- Numerical Optimization, 2nd edition, by Jorge Nocedal, Stephen J. Wright
Other suggested (not required) textbooks are
"Operations Research: Applications and Algorithms (4th revised edition)" by Wayne Winston (2004), and
"Introduction to Operations Research, 10th edition" by Hillier and Lieberman.
These are more undergraduate-level texts, which provide a gentler introduction to the subject but can get stuck in by-hand calculations.
The high cost is why they are suggested but not required.
We will also be using software. At least one of the following, and possibly more, is required:
- Microsoft Excel (2010 or better preferred), or other spreadsheet software like Gnumeric or OpenOffice
(MS Works spreadsheet is not powerful enough), and
- Python JupyterLab or Google Colaboratory
- opensolver.org and solverstudio.org
Optional software (unlikely that we would use it):
- GMPL/GUSEK
- Mathematica, Maple, or Matlab/Octave/SciLab
Last time I checked, brand-name Microsoft Excel is available free to EMU students.
The University's campus license also allows
students, faculty, and staff to install Microsoft Office (Windows,
Mac and mobile device versions) at no cost. To obtain the
software, login to portal.office.com (Links to an external
site.) using your EMU email address (username@emich.edu) and NetID
password and then follow the instructions on the page to download
and install the application.
Course Web Page
We will use the
EMU Canvas system.
You are expected to keep an eye
on your scores using the system, and get extra help if your scores
indicate the need.
Supplementary Materials
Here are some handy web sites:
Here are some other optimization books:
-
Introduction to Operations Research, 8th or 9th Edition, by
Frederick S Hillier and
Gerald J Lieberman (2004), $166 MSRP
-
Operations Research: An Introduction, 8/E by Taha (2007), $144 MSRP
-
Operations Research: Applications and Algorithms (4th revised
edition) by Wayne Winston (2004)
-
Introduction to Mathematical Programming: Applications and Algorithms, Volume 1
by Wayne L. Winston, Munirpallam Venkataramanan
-
Linear Programming and Network Flows, 3rd Edition.
Mokhtar S. Bazaraa, John J. Jarvis, Hanif D. Sherali
ISBN: 978-0-471-48599-5
Hardcover
744 pages
December 2004
US $120.00
-
Decision Modeling by David Tulett, https://linney.mun.ca/pages/view.php?ref=36808 (free!)
-
Network Flows: Theory, Algorithms, and Applications
by Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin
-
Introduction to Linear Optimization
by Dimitris Bertsimas, John N. Tsitsiklis
-
Nonlinear Programming
by Dimitri P. Bertsekas
-
Primal-Dual Interior-Point Methods
by Stephen J. Wright
-
Convex Optimization
by Boyd and Vandenberghe
www.stanford.edu/~boyd/cvxbook/
-
The Logic of Logistics : Theory, Algorithms, and Applications for Logistics Management
by Julien Bramel
-
Linear Programming: Foundations and Extensions
by Robert J. Vanderbei
-
Linear and Nonlinear Programming
by Stephen G. Nash, Ariela Sofer
-
Feasibility and Infeasibility in Optimization:
Algorithms and Computational Methods
by Chinneck, John W.
(EMU has an electronic subscription to it!)
-
Practical Optimization: A Gentle Introduction"
by Chinneck, John W.
(Free online textbook!)
-
An Introduction to Optimization, 3rd Edition.
Edwin K.P. Chong, Colorado State Univ.;
Stanislaw H. Zak, Purdue University
Wiley
-
Applied Integer Programming: Modeling and Solution.
Der-san Chen,
Robert G. Batson,
Yu Dang
-
Response Surface Methodology: Process and Product Optimization using Designed Experiments, 3rd edition.
Raymond H. Myers,
Douglas C. Montgomery,
Christine M. Anderson-Cook
-
The EMU library has electronic access to:
Encyclopedia of Optimization,
Christodoulos A. Floudas and Panos M. Pardalos
-
AMPL: A Modeling Language for Mathematical Programming (2nd edition), by Fourer, Gay, and Kernighan
-
GMPL: a free-software version of AMPL
-
PuLP: a free Python-based language sort-of like AMPL
Other books related to optimization, but not really our main focus:
- When Least is Best, by Paul J. Nahin
Books on Optimization Models:
- Nonlinear Optimization with Engineering Applications, by Bartholomew-Biggs
- Optimization in Industry, edited by Ciriani and Leachman
- Building and Solving Mathematical Programming Models in Engineering and Science, by Castillo, Conejo, Pedregal, Carcia, and Alguacil
- Building Intuition, edited by Chhajed and Lowe, chapter on Knapsack Problem
Blogs
Here are some of the blogs that relate to our class:
- http://punkrockor.wordpress.com/
- http://engineered.typepad.com/
and some older ones,
- http://industrialengineertools.blogspot.com/
- http://mat.tepper.cmu.edu/blog/
Course Content
Course Goals
Our primary goal is to teach you to be a good (or great!) optimizer.
To be a good optimizer, you need:
- Good habits and procedures, just like a scientist, and
- Knowledge of common optimization models.
Our department list of Student Learning Outcomes for Math 560 is:
Upon successfully completing MATH 560 Introduction to Optimization Theory, students will be able to
Recognize the assumptions that are made in developing a model and how to modify the assumptions to refine the model
Do a project, roughly on the scale of COMAP's Mathematical Contest in Modeling (MCM), and communicate its results
Formulate common Linear, Integer, and Nonlinear programs in software and symbolically
Explain basic solution methods for Linear, Integer, and Nonlinear Programs, including speed considerations
Explain the role of convexity in Nonlinear Programs
Explain meta-heuristics such as Evolutionary methods and Simulated Annealing
Explain duality and sensitivity analysis for LPs and NLPs
Explain other optimization topics such as Constraint Programming, Stochastic Programming, Robust Programming, Dynamic Programming, Calculus of Variations, and Optimal Control
Undergrads enrolled in Math 479 do not need to achieve the same level of ambition in their projects as graduate students in Math 560,
and similarly do not need to develop as deep an understanding of some of the solution methods.
Here is an idealized, pie-in-the-sky list of more detailed Student Learning Outcomes for this course: Students will be able to:
- Formulate common LPs in software and symbolically
- Explain the Fundamental Theorem of LP
- Formulate common IPs in software and symbolically
- Explain other optimization topics: Constraint Programming, Stochastic Programming, Robust Programming, Dynamic Programming, Calculus of Variations, Optimal Control
- Explain classic unconstrained NLP solution methods: line search, Steepest Descent, Newton, Quasi-Newton
- Explain the roles of convexity in NLPs
- Explain meta-heuristics: Evolutionary, Simulated Annealing, and perhaps others
- Explain the Simplex Method
- Explain duality and sensitivity analysis for LPs; column generation
- Explain Lagrange Multipliers/the KKT conditions and sensitivity analysis for constrained NLPs
- Explain constrained NLP solution methods
- Explain interior-point methods for LP
- Explain branch-and-bound for IPs; tight formulations, symmetry-breaking; branch-and-cut
- Consider factors affecting speed of unconstrained NLP solution: Conditioning, use of derivatives, algorithm convergence order/rate, etc.
- Take an optimization project from initial concept to formulation(s) and solution(s) including algorithmic concerns, and report/presentation.
and we will take them in that order, mostly.
Outline/schedule
Many classes in optimization theory start with linear problems and solution methods, then proceed to nonlinear problems,
because linear problems and solution methods are simpler. Other classes start with nonlinear, because then linear
is just a special case. We will start with mostly nonlinear problems and solution methods because then you will
have a wide base of ideas to do the first (mid-semester) project.
See the day-by-day schedule in the file containing All The Homework (or,
this direct google doc link in case the bitly link fails)
Here is the listing of module topics:
M010 Introductory Optimization Formulations, Excel Solver, Python intro, Fundamental Theorem of LP
M010a Starter Homework
M010b Linear Algebra Review
M020 Formulating LPs and NLPs: Deeper Dive (incl. networks)
M030 Binary Variables (fun, or not?) and Modeling
M030a Integer Program formulation homework
M030b Algebraic Modeling Languages
M040 Optimization and Society
M050 Intro to Unconstrained NLP: Contours etc.
M060 Learning Rate, SGD etc.
M070 When to Stop, and Line Search
M080 Second-Order Fun! Hessians and Newton's Method
M090 Convexity
M100 How We Solve Linear Programs: Simplex and Interior-Point
M110 (Constrained) LP: Shadow Prices
M120 Constrained NLP: Lagrange Multipliers
M130 Heuristics: Simulated Annealing, Evolutionary methods
M140 Solving Integer Programs: Branch and Bound
Undergraduate (Math 479) students will do fewer homework problems than graduate (Math 560) students.
Grading Policies
Attendance
My lectures and discussions mostly use the document camera, along with
demonstrations in Excel and other mathematical software like Python. I do not
usually have PowerPoint-like presentations, and thus cannot hand
out copies of slides.
Homework
Homework will be assigned about once a week. All homework should
be typed unless notified otherwise.
Homework papers should be submitted on-line via EMU Canvas unless otherwise noted in the assignment.
Exams
There will be no exams, unless the class demonstrates an unwillingness
to be motivated any other way.
Project(s)
Instead of exams, we will have two projects.
Your results for each will reported in a paper and a presentation to
the class. You may work by yourself or in a team of 2 people, but no
groups larger than 2 will be allowed. You may switch project partners
at your will. Your project grades will each be split into roughly:
10 percent for the project proposal (due 2 weeks before the project),
80 percent for the written paper and actual work, and
10 percent for the presentation
(subject to change). The presentations for the second project will be made during the
time slot reserved for the final exam.
Overall Grades
There is no systematic system for dropping scores like "the lowest 2 homeworks".
In the unfortunate event of a need, the appropriate grade or
grades may be dropped entirely (at the professor's discretion), rather than giving a make-up.
You are highly encouraged to still complete the relevant assignments and consult with me during office hours to ensure you know the material.
Your final score will be computed as follows:
- 50 percent for all the homework together,
- 20 percent for the mid-term project, and
- 30 percent for the final project.
Once final scores are computed, a curve will be applied.
General Caveat
The instructor reserves the right to make changes to this syllabus
throughout the semester. Notification will be given in class or
by e-mail or both. If you miss class, it is your responsibility
to find out about syllabus and schedule changes, especially
the due dates and times of projects, assignments, or presentations.
Advice from previous students
Last time I taught the course, I asked my students to give advice to you, future students,
based on their experiences in my course. Here are some of the highlights:
- Previous knowledge about linear algebra would be helpful in this course.
- A [python] book may be helpful.
- Don't wait until the last minute to do the homework.
- Start the homework questions immediately.
- Ask a lot of questions
- Email him when you get stuck -- his responses are always very prompt and helpful.
- You probably don't need the [Winston] book, but if you're a math geek you're going to want it--it's good.
- Look into online tutorials for Excel and [python].
UNIVERSITY COURSE POLICIES, EXPECTATIONS, AND STUDENT RESOURCES
In addition to the articulated course specific policies and expectation, students are responsible for understanding all applicable university guidelines, policies, and procedures. The EMU Student Handbook is the primary resource provided to students to ensure that they have access to all university policies, support resources, and student's rights and responsibilities. Changes may be made to the EMU Student Handbook whenever necessary, and shall be effective immediately, and/or as of the date on which a policy is formally adopted, and/or the date specified in the amendment. Electing not to access the link provided below does not absolve a student of responsibility. For questions about any university policy, procedure, practice, or resource, please contact the Office of the Ombuds: 248 Student Center, 734.487.0074, emu_ombuds@emich.edu, or visit the website at www.emich.edu/ombuds . CLICK HERE to access the University Course Policies: http://www.emich.edu/studenthandbook/policies/academic.php#univ
Food Pantry
Swoop's Pantry (104 Pierce Hall, emich.edu/swoopspantry, 734 487 4173) offers food assistance to all EMU students who could benefit. Students are able to visit twice per month to receive perishable and non-perishable food items, personal hygiene items, baby items, and more. Students can visit our website for hours of operation and more information. If you are in a position to donate to Swoop's, I encourage you to do so!
Resources
https://www.emich.edu/studenthandbook/campus-resources/index.php
University Writing Center
The University Writing Center Virtual (UWCV) offers writing support to all undergraduate and graduate students. In doing so, we value the diversity of our campus and honor all students and the languages they bring with them to the University.
We offer one-to-one writing consulting for both undergraduate and graduate students. The UWC also has several college and program satellite locations across campus. The locations and hours for the other satellites can be found on the UWC web site: http://www.emich.edu/ccw/writing-center/contact.php Students seeking writing support at any UWC location should bring a draft of their writing (along with any relevant instructions or rubrics) to work on during the consultation.
Disabilities Resource Center
The DRC works collaboratively with students, faculty and staff to create an accessible, sustainable, and inclusive educational environment.
University Library
Research support is available to all students, 24/7. This includes getting started with research, identifying sources to search, developing search strategies, evaluating resources, and more. See https://www.emich.edu/library/help/ask.php for all of the ways in which you can get help with research. Some University Library services have changed, and may continue to change, in response to the pandemic. Please check for current information at https://www.emich.edu/library/news/covid.php
Title IX regarding discrimination on the basis of sex
Title IX of the Education Amendments of 1972 prohibits discrimination on the basis of sex under any education program or activity receiving federal financial aid. Sexual assault and sexual harassment is a form of sex discrimination prohibited by Title IX. What you need to know about Title IX
Student and Exchange Visitor Statement (SEVIS):
The Student Exchange Visitor Information System (SEVIS) requires F and J students to report numerous items to the Office of International Students & Scholars (OISS)